Peripheral device detection with short-range communication

ABSTRACT

In general, embodiments of the present disclosure are directed to techniques for configuring a mobile device according to detection of one or more peripheral devices in an environment using short-range wireless communication. In one example, a method includes, receiving, by a computing device that communicates with a peripheral device using short-range wireless communication, a unique identifier of the peripheral device. If the computing device recognizes the unique identifier of the peripheral device, the computing device may determine a configuration operation based on the unique identifier that changes a current operating state of at least one application executing on the computing device to a different operating state. If the computing device does not recognize the unique identifier of the peripheral device, the computing device may send a lookup request to a network resource external to the computing device that requests data specifying the configuration operation for the computing device.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.61/428,483, filed Dec. 30, 2010, the entire content of which isincorporated herein in its entirety.

TECHNICAL FIELD

This disclosure relates to communication implemented via radio frequencysignal transmission over a short distance between a communication deviceand a receiver.

BACKGROUND

A user may interact with applications executing on a computing device(e.g., mobile phone, tablet computer, smart phone, or the like). Forinstance, a user may install, view, or delete an application on acomputing device.

In some instances, a user may use a mobile device (e.g., mobile phone,tablet computer, smart phone, or the like) in proximity to otherdevices. For instance, a user may place a mobile device on a dockingstation.

SUMMARY

In one example, a method includes receiving, by a computing device thatcommunicates with a peripheral device using short-range wirelesscommunication, a unique identifier of the peripheral device. If thecomputing device recognizes the unique identifier of the peripheraldevice the computing device may determine a configuration operation forthe computing device based on the unique identifier, wherein theconfiguration operation changes a current operating state of at leastone application executing on the computing device to a differentoperating state. If the computing device does not recognize the uniqueidentifier of the peripheral device, the computing device may send alookup request to a network resource external to the computing device,wherein the lookup request includes a request to the network resourcefor data specifying the configuration operation for the computing devicebased on the unique identifier of the peripheral device.

In one example, a computer-readable storage medium is encoded withinstructions that cause one or more processors of a computing device toreceive, by the computing device that communicates with a peripheraldevice using short-range wireless communication, a unique identifier ofthe peripheral device. If the computing device recognizes the uniqueidentifier of the peripheral device, the computing device may determinea configuration operation for the computing device based on the uniqueidentifier, wherein the configuration operation changes a currentoperating state of at least one application executing on the computingdevice to a different operating state. If the computing device does notrecognize the unique identifier of the peripheral device, the computingdevice may send a lookup request to a network resource external to thecomputing device, wherein the lookup request includes a request to thenetwork resource for data specifying the configuration operation for thecomputing device based on the unique identifier of the peripheraldevice.

In one example, a computing device includes one or more processors. Thecomputing device also includes a short-range communication device toreceive a unique identifier of a peripheral device. The computing devicefurther includes an application installed on the computing device andoperable by the one or more processors to, if the computing devicerecognizes the unique identifier of the peripheral device, determine aconfiguration operation based on the unique identifier, wherein theconfiguration operation changes a current operating state of at leastone application executing on the computing device to a differentoperating state. The computing device also includes means for sending alookup request to a network resource if the computing device does notrecognize the unique identifier of the peripheral device, wherein thelookup request includes a request to the network resource for dataspecifying the configuration operation for the computing device based onthe unique identifier of the peripheral device.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating an example of a computing devicethat is configured to execute one or more applications and anidentification application, in accordance with one or more aspects ofthe present disclosure.

FIG. 2 is a block diagram illustrating further details of one example ofthe computing device shown in FIG. 1, in accordance with one or moreaspects of the present disclosure.

FIG. 3 is a flow diagram illustrating an example method that may beperformed by a computing device to receive an unique identifier from aperipheral device and perform one or more configuration operations, inaccordance with one or more aspects of the present disclosure.

FIG. 4 is a flow diagram illustrating an example use case of a mobiledevice, in accordance with one or more aspects of the presentdisclosure.

FIG. 5 is a block diagram illustrating an example of an identificationapplication that may be configured to execute configuration operationsbased on content types, in accordance with one or more aspects of thepresent disclosure.

FIG. 6 is a block diagram illustrating an example of a computing deviceconfigured to communicate with other devices if a tag is detected by thecomputing device using short-range communication, in accordance with oneor more aspects of the present disclosure.

DETAILED DESCRIPTION

In general, embodiments of the present disclosure are directed totechniques for configuring a mobile device according to its presentenvironment using short-range wireless communication. In a single day, amobile device may be used in many different environments. For example, amobile device may be charged and stored at a user's bedside throughoutthe night. During a morning vehicle commute, the user may place themobile device in a vehicle dock of his or her vehicle. When the userarrives at work, the user may put the mobile device in an office dockingstation. Finally, at the end of the day, a user may interact with themobile device in the user's living room, e.g., as a television remotecontrol, where the mobile device may be in proximity to yet anotherdock. In each different environment, the user may wish for the mobiledevice to exhibit a different set of behaviors. For example, a user mayprefer lower ringer and external volume settings while at work. In otherexamples, a user may prefer a navigation application to automaticallyexecute when the mobile device is in a vehicle. In each case, manualintervention may be required by the user to configure the mobile deviceto its present environment.

The requirement of manual intervention for each environment may beeliminated by a mobile device that employs a short-range wirelesscommunication technology. For example, a mobile device may use ashort-range wireless communication technology to detect tags that areattached to other peripheral devices such as a car dock, desk dock, orother peripherals (e.g., wireless charger). Each tag may contain uniqueinformation corresponding to the environment in which it is placedand/or the type of peripheral device onto which it is placed. When themobile device detects a particular tag, the mobile device may receive,for example, a serial number and data payload from the tag. In someexamples, the mobile device may provide the data payload to applicationsexecuting on the mobile device. In some examples, settings ofapplications executing on the mobile device may be automaticallymodified based on the particular tag detected by the mobile device.

In one example, a mobile device may be equipped with a short-rangecommunication device that is capable of communicating using ashort-range wireless communication technology, such as Near FieldCommunication (NFC). The mobile device may also execute a short-rangewireless application that receives data from the short-rangecommunication device. In some examples, a user may identify variousenvironments for which different mobile device behavior is desired. Theuser may initially place a short-range wireless communication tag onperipheral devices in each of the various environments. Each tag maycontain, for example, a data payload. In one example, the data payloadincludes a unique identifier. When the mobile device is in physicalproximity to the tag and thus in the environment associated with thetag, the short-range communication device may detect the tag. The mobiledevice may receive information that includes, for example, the datapayload, which may be processed by the short-range wireless applicationexecuting on the mobile device. The short-range wireless application maymake the data payload including the unique identifier available to otherapplications on the mobile device. Each application executing on themobile device may, in some examples, be configured to the presentenvironment according to the data payload and configuration operationsassociated with the unique identifier.

FIG. 1 is a block diagram illustrating an example of a computing device2 that is configured to execute one or more applications 14A, 14B, 14C,and identification application 6 in accordance with one or more aspectsof the present disclosure. Applications 14A, 14B, 14C may furtherinclude modules 16A, 16B, 16C respectively that perform variousoperations of the respective applications. Computing device 2, in someexamples, includes or is a part of a portable computing device (e.g.mobile phone/netbook/laptop/tablet device) or a desktop computer.Computing device 2 may also connect to a network including a wired orwireless network using a network device 10.

In some examples, computing device 2 includes a short-rangecommunication device 4. In one example, short-range communication device4 is capable of short-range wireless communication 20 using a protocolsuch as Bluetooth® or Near-Field Communication. Short-range wirelesscommunication 20, in some examples, includes wireless communicationsbetween computing device 2 and peripheral device 22 of approximately 100meters or less.

Short-range wireless communication 20, in some examples, includes twodifferent modes of operation. For example, short-range wirelesscommunication 20 may include an active mode and a passive mode ofoperation. In an active mode of operation, computing device 2 maygenerate a first radio field that is received by peripheral device 22 inphysical proximity to computing device 2. In response, peripheral device22 may generate a second radio field that is received by short-rangecommunication device 4. In this way, data may be communicated betweencomputing device 2 and peripheral device 22.

In a passive mode of operation, load modulation techniques may beemployed to facilitate data communication between computing device 2 andperipheral device 22. In a passive mode, peripheral device 22 does notgenerate a radio field in response to the radio field of short rangecommunication device 3. Instead, peripheral device 22 may includeelectrical hardware that generates a change in impedance in response toa radio field. For example, short-range communication device 4 maygenerate a radio field that is received by peripheral device 22.Electrical hardware in peripheral device 22 may generate a change inimpedance in response to the radio field. The change in impedance may bedetected by short-range communication device 4. In this way, loadmodulation techniques may be used by computing device 2 to receiveinformation from peripheral device 22. Other well-known modulationtechniques including phase modulation and/or amplitude modulation mayalso be employed to facilitate data communication between computingdevice 2 and peripheral device 22.

In some examples, peripheral device 22 is another computing devicesimilar to computing device 2. For example, peripheral device 22, insome examples, includes or is a part of a portable computing device(e.g. mobile phone/netbook/laptop/tablet device) or a desktop computer.In other examples, peripheral device 22 includes electrical hardwarethat generates a change in impedance in response to a radio field. Insome examples, peripheral device 22 is a tag that includes electricalhardware, which generates a change in impedance in response to a radiofield. In some examples, peripheral device 22 includes a tag that isattached to another device. For example, a tag may be attached to aperipheral device 22, e.g., a docking station, which is capable ofholding computing device 2. In some examples, a docking station mayprovide power recharging to computing device 2 and/or networkconnectivity to computing device 2.

In one example, computing device 2 receives information 24 fromperipheral device 22 in response to receiving a radio field generated byshort-range communication device 4. In some examples, information 24includes data that is stored and/or generated by peripheral device 22.In some examples, information 24 includes a unique identifier 26. In oneexample, unique identifier 26 includes data such as a serial number orother data that uniquely identifies peripheral device 22. For example,where two or more peripheral devices are present, each peripheral deviceis uniquely identified by a unique identifier. In some examples,information 24 includes a data payload 28. In one example, data payload28 includes any data associated with peripheral device 22. In someexamples, data payload 28 may include encrypted data. In other examples,data payload 28 may include a unique identifier. In some examples, datapayload 28 contains information such as technical specificationspertaining to peripheral device 22. In one example, information 24includes a cryptographic key. Identification application 6, may in someexamples, select the cryptographic key from information 24 to determineif the peripheral device is trustworthy. If the peripheral device istrustworthy, identification application 6 may further communicate withperipheral device 22.

In one example, short-range communication device 4 receives information24 from peripheral device 22. Identification application 6, in turn,receives information 24 from short-range communication device 4. In someexamples, identification application 6 may include data and instructionsexecuting on computing device 2. Identification application 6 mayinclude identification module 8, which may perform various functions ofidentification application 6 described hereinafter. Identificationapplication 6, in some examples, stores and retrieves unique identifiersand/or definitions of configuration operations in profile database 12.In some examples, a profile may include a definition of a configurationoperation. In other examples, identification application 6 communicateswith one or more applications executing on computing device 2, e.g.,application 14A, 14B, 14C. For example, identification application 6 maycommunicate with one or more applications executing on computing device2 using well-known interprocess communication techniques including,e.g., shared memory, messages, sockets, and/or pipes. Interprocesscommunication techniques are described for example purposes only andother forms of communication are also contemplated.

Identification application 6 may change a state of an applicationexecuting on computing device 2 by sending data to the application. Inone example, a state of an application includes a unique configurationof information in the application at a point in time. For example, thestate of an application includes data and a group of instructionsexecuting to operate on the data at a point in time. In one example,identification application 6 sends data to an application executing oncomputing device 2 to modify the state of the application, e.g.,application 14A. Application 14A may be an operating system executing oncomputing device 2. Identification application 6 may send data orinstructions to application 14A to change the state of the operationsystem, e.g., lowering a volume setting.

Techniques of the present disclosure may be illustrated by way of anexample that includes a mobile device placed in a docking station of anautomobile. For example, it may be advantageous to change the state ofone or more applications executing on computing device 2 according tothe current environment of computing device 2. In one example, a userinitially places a Near-Field Communication (NFC) tag on or near aperipheral device 22, e.g., a docking station, in an automobile. Thedocking station, in some examples, provides power to computing device 2and/or connects to the automobile's audio system.

After attaching a NFC tag to peripheral device, the user may initiateidentification application 6. In some examples, the user may registerone or more applications executing on computing device 2, e.g.,applications 14A, 14B, and 14C, with identification application 6. Insome examples, registering an application with identificationapplication 6 enables identification application 6 to communicate withthe application.

In the current example, the user, using identification application 6,defines one or more configuration operations. In some examples, adefinition of a configuration operation includes data and/orinstructions that are executed by computing device 2. In some examples,a configuration operation changes the state of an application executingon computing device 2, e.g., by sending data to the application.

In the current example of a docking station in an automobile, aconfiguration operation is defined by a user and associated with uniqueidentifier 26 of peripheral device 22 and application 14A. For example,application 14A may be executing on computing device 2 and registeredwith identification application 6. Using identification application 6, auser may define a configuration operation, e.g., increase ringer volume,associated with application 14A. The user may also associate uniqueidentifier 26 with the configuration operation using identificationapplication 6. Thus, the configuration operation, application 14A, andunique identifier 26A may be associated together. The definition of theassociation between the configuration operation, application 14A, andunique identifier 26A may be stored in and retrieved in profile database12.

At a later point in time, in response to receiving information 24,identification application 6, in one example, retrieves the definitionof the configuration operation from profile database 12 using uniqueidentifier 26. For example, the user places computing device 2 in thedocking station of the automobile. When the user places computing device2 in the docking station of the automobile, in one example, computingdevice 2 is in physical proximity to peripheral device 22. Computingdevice 2 may receive information 24 that includes unique identifier 26and data payload 28 using short-range communication, e.g. Near FieldCommunication.

Upon receiving information 24, identification application 6, in oneexample, selects unique identifier 26. In some examples, identificationapplication 6 uses unique identifier 26 to identify the associationbetween unique identifier 26 and the configuration operation. Using theidentified association, identification application 6, in one example,retrieves the definition of the configuration operation based on uniqueidentifier 26. Identification application 6 may then execute theconfiguration operation, which may increase the ringer volume. Forexample, prior to executing the configuration operation, the ringervolume may be set to a defined level. After executing the configurationoperation, the ringer volume may be set to a new defined level that ishigher than the level defined prior to the configuration operation. Inthis way, the execution of the configuration operation may increase theringer volume. Thus, the higher ringer volume may enable the user tohear the ringer even in the presence of background noise.

In the current example, executing the configuration operation, e.g.,increasing the ringer volume, changes the state of application 14A. Forexample, application 14A may be an operating system that controls theringer volume of the computing device 2. In one example, the currentstate of application 14A includes a current ringer volume setting.Identification application 6, in the example, executes the configurationoperation that in turn increases the current ringer volume setting,e.g., changes the state of application 14A. For example, identificationapplication 6 may execute a configuration operation that sends data,e.g., a ringer volume setting, to application 14A. Application 14A mayreceive this data from identification application 6, and in response tothe data, increase the ringer volume setting.

In some examples, computing device 2 receives information 24 but may notrecognize information 24. For example, a user may not, in some examples,initially register an application with identification application 6. Inother examples, a user does not define a configuration operation that isassociated with unique identifier 26. In such examples, although theuser has not associated information 24 with an application and/or aconfiguration operation, identification application 6 receives data thatchanges the state of an application in response to information 24 via anetwork connection.

For example, in FIG. 1, computing device 2 includes a network device 10.Network device 10 may be a network interface as described in FIG. 2. Insome examples, network device 10 may be a network interface card, suchas an Ethernet card, an optical transceiver, a radio frequencytransceiver, or any other type of device that can send and receiveinformation.

In some examples, network device 10 sends data to a network resourceexternal to computing device 2, e.g., remote server 32. In FIG. 1, aremote server 32 may include one or more desktop computers, mainframes,minicomputers, or other computing devices capable of executing computerinstructions and storing data. Technical details of remote server 32 arefurther discussed in the example of FIG. 2. Remote server 32 may connectto a network, e.g., the Internet, a wireless network, a wired network,or a fiber optic network.

In some examples, computing device 2 may be in proximity to peripheraldevice 22. Using the techniques described herein, computing device 2, inone example, receives information 24 using short-range communicationdevice 4. In one example, identification application 6 selects uniqueidentifier 26 to identify one or more configuration operationsassociated with unique identifier 26. In some examples, identificationapplication 6 queries profile database 12, which may include one or moreassociations between unique identifiers and configuration operations.

In some examples, identification application 6 may determine that noassociations exist in profile database 12 between unique identifier 16and one or more configuration operations. In such examples,identification application 6 generates a lookup request. Identificationapplication 6 may include in a lookup request a request for data and/orinstructions that are used to change the state of an applicationexecuting on computing device 2. For example, identification application6 may, in one example, include in request message 30 a lookup request,unique identifier 26, and/or data payload 28. Request message 30, insome examples, may include other additional information such as usercredentials, information about applications executing on computingdevice 2, hardware and software specifications relating to computingdevice 2, and/or an identifier that may include a phone number, MediaAccess Controller address, or other unique identifier of computingdevice 2.

In some examples, identification application 6 sends request message 30to remote server 32 using network device 10. For example, application 6may establish a network connection with remote server 32 via a socketusing a network address stored on computing device 2 that identifiesremote server 32. Computing device 2 may further execute a network sendfunction called by application 6 that receives request message 30 as aninput value. A send network function may generate multiple networkpackets that include the contents of request message 30. Network device10 may send each network packet to remote server 32. In one example,remote server 32 receives the network packets that include the contentsof request message 30 via a network from computing device 2. Remoteserver 32 may reassemble the network packets to generate request message30.

In some examples, remote server 32 includes one or more remote databases36. For example, remote database 36 may include Relational DatabaseManagement System (RDBMS) software. In one example, remote database 36may be a relational database and accessed using a Structured QueryLanguage (SQL) interface that is well known in the art. Remote database36 may alternatively be stored on a separate networked computing deviceand accessed by remote server 32 through a network interface or systembus. Remote database 36 may in other examples be an Object DatabaseManagement System (ODBMS), Online Analytical Processing (OLAP) databaseor other suitable data management system.

In some examples, remote server 32 processes the contents of requestmessage 30 to generate data and/or instructions that change the state ofan application executing on computing device 2. In one example, remotedatabase 36 includes associations between unique identifiers anddefinitions of configuration operations. For example, remote database 36may include data and/or instructions that define a configurationoperation. In one example, a unique identifier may be associated with aconfiguration operation that mutes the ringer volume of computing device2.

In one example, remote server 32 receives request message 30 containingunique identifier 26 and/or lookup request because computing device 2does not recognize unique identifier 26. In one example remote server 32selects unique identifier 26 from request message 30. In some examplesremote server 32 queries remote database 36 to identify data and/orinstructions that define one or more configuration operations associatedwith unique identifier 26 and/or a lookup request. For example, remoteserver 32 may retrieve a definition of a configuration operation to mutethe ringer volume of computing device 2 from remote database 36. Remoteserver 32 may generate a response message 24 that contains thedefinition of the configuration operation. In some examples, responsemessage 24 may include additional data that may be associated with theconfiguration operation. Remote server 32 may send response message 34to computing device 2 via a network such as the Internet.

In one example, computing device 2 receives response message 34 fromremote server 34 via network device 10. In some examples, identificationapplication 6 selects data and/or instructions that define one or moreconfiguration operations from response message 34. Identificationapplication 6, in one example, executes the one or more configurationoperations, which may in turn change the state of one or moreapplications executing on computing device 2. In one example, the dataand/or instructions of response message 34 that define the configurationoperation mute the ringer volume of computing device 2.

In some examples, identification application 6 may receive information24 from peripheral device 22 but may not recognize unique identifier 26.Information 24 may include data that indicates computing device 2 mayuse a particular application associated with peripheral device 22;however, the application may not presently be installed on computingdevice 2. For example, peripheral device 22 may be attached to or inproximity to a television and may be associated with the television.Peripheral device 22 may include data that indicates application 6 mayexecute a remote control application on computing device 2. The remotecontrol application may enable a user to use computing device 2 tochange various settings of the television such as the current channel,volume, etc. Computing device 2 may not, however, presently include theremote control application.

In such examples remote server 32 may use unique identifier 26 toidentify the remote control application. For example, application 6 maygenerate a lookup request that may be included in request message 30.The lookup request may indicate that application 6 does not recognizeunique identifier 26 and may include unique identifier 26. Computingdevice 2 may send request message 30 to remote server 32. Remote server32 may receive the lookup request and identify a remote controlapplication based the contents of request message 30, e.g., uniqueidentifier 26. Remote server 32 may generate remote message 34, whichmay include data usable by peripheral device 22 to retrieve the remotecontrol application. For example, the data may include an identifier ofthe remote control application such as a Uniform Resource Identifier(URI). Upon receiving response message 34 from remote server 32,identification application 6 may notify the user that the remote controlapplication is available for download and installation. In someexamples, identification application 6 may further receive a user inputfrom the user to install the remote control application. In otherexamples, application 6 may automatically select and/or download andinstall the remote control application automatically based on a userpreference. In this way, applications associated with peripheral devicesmay be downloaded and installed by a computing device 2 if suchapplications are not initially installed when information 24 is receivedfrom peripheral device 22.

In one example use case, a user may place individual tags on a bedsidedock, a vehicle dock, and a dock at work. The user may configure themobile device to set the ringer volume to silent when the bedside dockis detected. When the vehicle dock is detected, the user may configurethe mobile device to automatically execute a navigation application, setthe mobile device ringer volume to high, and a play a particular musicplaylist. The user may also configure the mobile device to set theringer volume to low when the dock at work is detected. As the mobiledevice is carried with the user to different environments throughout theday, e.g., home, vehicle, and work, the mobile device automaticallyconfigures itself according to the user's preferences as different tagsare detected using the short-range wireless communication technology. Inthis way, the user may not be required to manually configure the mobilephone by the user in each particular location.

Various aspects of the disclosure may provide, in certain instances, oneor more benefits and advantages. For example, identification application6 may automate the configuration of computing device 2 when in proximityto peripheral device 22. Automating the configuration of computingdevice 2 may eliminate the need for the user to manually configurecomputing device 2 in each different environment. Eliminating therequirement of manual intervention may increase user productivity byallowing the user to focus on other tasks than manual configuration ofcomputing device 2. In addition, aspects of the disclosure enablecomputing device 2 to configure applications even when a user has notprovided initial configuration of applications 14A-14C.

Eliminating the need for initial configuration of applications maydramatically increase the flexibility of computing device 2 because theuser need not necessarily, in some examples, provide advanceconfiguration of applications for peripheral devices. As peripheraldevices become more prevalent, the ability of computing device 2 toautomatically configure applications in response to unrecognized uniqueidentifiers becomes more valuable because manual user intervention issignificantly reduced thereby increasing productivity. Theaforementioned benefits and advantages are exemplary and other suchbenefits and advantages may be apparent in the previously-describednon-limiting examples. While some aspects of the present disclosure mayprovide all of the aforementioned exemplary benefits and advantages, noaspect of the present disclosure should be construed to necessarilyrequire any or all of the aforementioned exemplary benefits andadvantages.

Various aspects of the disclosure may be operable only when the user hasexplicitly enabled such functionality. In addition, various aspects ofthe disclosure may be disabled by the user. Thus, a user may elect toprevent computing device 2 from sending request message 30 to remoteserver 32. In addition, a user may prevent computing device 2 fromreceiving response message 34 from remote server 32. Short-rangewireless communication 20 may be disabled by the user and a user maytherefore prevent receipt of information 24. More generally, privacycontrols may be applied to all aspects of the disclosure based on auser's privacy preferences to honor the user's privacy preferences foropting in or opting out of the functionality described in thisdisclosure.

FIG. 2 is a block diagram illustrating further details of one example ofcomputing device 2 shown in FIG. 1, in accordance with one or moreaspects of the present disclosure. FIG. 2 illustrates only oneparticular example of computing device 2, and many other exampleembodiments of computing device 2 may be used in other instances.

As shown in the specific example of FIG. 2, computing device 2 includesone or more processors 40, memory 42, a network interface 44, one ormore storage devices 46, input device 48, output device 50, battery 52and short-range communication device 54. Computing device 2 alsoincludes an operating system 56, which may include modules that areexecutable by computing device 2. Computing device 2, in one example,further includes one or more applications 58 and an identificationapplication 60. One or more applications 58 and identificationapplication 60 are also executable by computing device 2. Each ofcomponents 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, and 64 may beinterconnected (physically, communicatively, and/or operatively) forinter-component communications.

Processors 40, in one example, are configured to implement functionalityand/or process instructions for execution within computing device 2. Forexample, processors 40 may be capable of processing instructions storedin memory 42 or instructions stored on storage devices 46.

Memory 42, in one example, is configured to store information withincomputing device 2 during operation. Memory 42, in some examples, isdescribed as a computer-readable storage medium. In some examples,memory 42 is a temporary memory, meaning that a primary purpose ofmemory 42 is not long-term storage. Memory 42, in some examples, isdescribed as a volatile memory, meaning that memory 42 does not maintainstored contents when the computer is turned off. Examples of volatilememories include random access memories (RAM), dynamic random accessmemories (DRAM), static random access memories (SRAM), and other formsof volatile memories known in the art. In some examples, memory 42 isused to store program instructions for execution by processors 40.Memory 42, in one example, is used by software or applications runningon computing device 2 (e.g., one or more of applications 58) totemporarily store information during program execution.

Storage devices 46, in some examples, also include one or morecomputer-readable storage media. Storage devices 46 may be configured tostore larger amounts of information than memory 42. Storage devices 46may further be configured for long-term storage of information. In someexamples, storage devices 46 include non-volatile storage elements.Examples of such non-volatile storage elements include magnetic harddiscs, optical discs, floppy discs, flash memories, or forms ofelectrically programmable memories (EPROM) or electrically erasable andprogrammable (EEPROM) memories.

Computing device 2, in some examples, also includes a network interface44. For example, network device 10 as shown in FIG. 1 may be a networkinterface 44. Computing device 2, in one example, utilizes networkinterface 44 to communicate with external devices via one or morenetworks, such as one or more wireless networks. Network interface 44may be a network interface card, such as an Ethernet card, an opticaltransceiver, a radio frequency transceiver, or any other type of devicethat can send and receive information. Other examples of such networkinterfaces may include Bluetooth®, 3G and WiFi® radios in mobilecomputing devices as well as USB. In some examples, computing device 2utilizes network interface 44 to wirelessly communicate with an externaldevice (not shown) such as a server, mobile phone, or other networkedcomputing device.

Computing device 2, in one example, also includes one or more inputdevices 48. Input device 48, in some examples, is configured to receiveinput from a user through tactile, audio, or video feedback. Examples ofinput device 48 include a touch-sensitive and/or a presence-sensitivescreen, mouse, a keyboard, a voice responsive system, or any other typeof device for detecting a command from a user. In some examples, inputdevice 48 includes a touch-sensitive screen, mouse, keyboard,microphone, or video camera.

One or more output devices 50 may also be included in computing device2. Output device 50, in some examples, is configured to provide outputto a user using tactile, audio, or video stimuli. Output device 50, inone example, includes a touch-sensitive screen, sound card, a videographics adapter card, or any other type of device for converting asignal into an appropriate form understandable to humans or machines.Additional examples of output device 50 include a speaker, a cathode raytube (CRT) monitor, a liquid crystal display (LCD), or any other type ofdevice that can generate intelligible output to a user.

Computing device 2, in some examples, include one or more batteries 52,which may be rechargeable and provide power to computing device 2.Battery 52, in some examples, is made from nickel-cadmium, lithium-ion,or other suitable material.

Computing device 2, in some examples, includes one or more short-rangecommunication devices 54. In some examples, short-range communicationdevice 54 communicates wirelessly with other devices in physicalproximity to short-range communication device 54, e.g., approximately0-100 meters. In other examples, short-range communication device 54reads a tag, e.g., an RFID tag, via a radio frequency signal. Someexamples of short-range communication device 54 include a Bluetooth®,Near-Field Communication, or Ultra-Wideband radio.

Computing device 2 may include operating system 56. Operating system 56,in some examples, controls the operation of components of computingdevice 2. For example, operating system 56, in one example, facilitatesthe interaction of application 58 or identification application 60 withprocessors 40, memory 42, network interface 44, storage device 46, inputdevice 48, output device 50, battery 52, and short-range communicationdevice 54.

Computing device 2, in some examples, further includes identificationapplication 60. Identification application 60, in one example, includesidentification application 6 as shown in FIG. 1. Identificationapplication 60, in one example, further includes an identificationmodule 62. Identification module 62, in some examples, includeinstructions that cause identification application 60 executing oncomputing device 2 to perform the operations and actions described inFIG. 1-5. For example, in FIG. 1, when information 24 is received bycomputing device 2, identification module 62 of FIG. 2 may retrieveassociated profiles from profile database 64. In other examples,identification module 62 may determine a configuration operationassociated with information 24 as shown in FIG. 1. In still otherexamples, identification module 62 may communicate with remote server 32of FIG. 1 to send request message 30 and receive response message 34.

Computing device 2, in some examples, further includes profile database64. For example, remote database 64 may include Relational DatabaseManagement System (RDBMS) software. In one example, remote database 64may be a relational database and accessed using a Structured QueryLanguage (SQL) interface that is well known in the art. Remote database64 may alternatively be stored on a separate networked computing deviceand accessed by remote server 64 through a network interface or systembus. Remote database 64 may in other examples be an Object DatabaseManagement System (ODBMS), Online Analytical Processing (OLAP) databaseor other suitable data management system.

Any applications, e.g., applications 58 or identification application60, implemented within or executed by computing device 2 may beimplemented or contained within, operable by, executed by, and/or beoperatively/communicatively coupled to components of computing device 2,e.g., processors 40, memory 42, network interface 44, and/or storagedevices 46.

FIG. 3 is a flow diagram illustrating an example method that may beperformed by a computing device to receive a unique identifier from aperipheral device and perform one or more configuration operations, inaccordance with one or more aspects of the present disclosure. Forexample, the method illustrated in FIG. 3 may be performed by computingdevice 2 shown in FIGS. 1 and/or 2.

The method of FIG. 3 includes, receiving, by a computing device thatcommunicates with a peripheral device using short-range wirelesscommunication, a unique identifier of the peripheral device (70). Themethod further includes, if the computing device recognizes the uniqueidentifier of the peripheral device, determining, by the computingdevice, a configuration operation for the computing device based on theunique identifier, wherein the configuration operation changes a currentoperating state of at least one application executing on the computingdevice to a different operating state (72). The method further includes,if the computing device does not recognize the unique identifier of theperipheral device, sending, by the computing device, a lookup request toa network resource external to the computing device, wherein the lookuprequest includes a request to the network resource for data specifyingthe configuration operation for the computing device based on the uniqueidentifier of the peripheral device (74).

In some examples, the method further includes generating, by thecomputing device, a message including data that defines a secondconfiguration operation, wherein the second configuration operationchanges a second current state of at least one application executing ona second computing device to a second, different operating state; andsending, by the computing device, the message to the second computingdevice. In some examples, the message includes receiving, by thecomputing device that communicates with a peripheral device usingshort-range wireless communication a data payload, the data payloadincluding information that changes the current operating state of the atleast one application executing on the computing device to the differentoperating state. In some examples, the lookup request including therequest to the network resource for data specifying the configurationoperation includes the data payload, wherein the configuration operationis based on the information of the data payload. In some examples, themethod further includes receiving a content type, and wherein theconfiguration operation changes the current operating state of the atleast one application executing on the computing device to the differentoperating state when the at least one application is associated with thecontent type, and wherein the content type further includes an attributethat associates the configuration operation with a group of one or moreapplications executing on the computing device. In some examples,registering, by the computing device, the at least one application ofthe computing device with the content type, wherein registering the atleast one application further includes generating a first associationbetween the at least one application and the content type; andregistering, by the computing device, the content type with theconfiguration operation, wherein registering the content type furtherincludes generating a second association between the content type andthe configuration operation.

In some examples, the method further includes storing, by the computingdevice in a database, a profile associated with the unique identifier,wherein the profile includes a definition of the configurationoperation. In some examples, the method further includes sending, by thecomputing device, a short-range wireless communication broadcast torequest the unique identifier from the peripheral device. In someexamples, the unique identifier further includes a cryptographic key. Insome examples, the short-range wireless communication includes a NearField Communication. In some examples, the method further includesreceiving a data payload that includes data associated with theperipheral device. In some examples, the at least one applicationexecuting on the computing device includes an operating system executingon the computing device.

In some examples, the method further includes providing the data payloadfor use by the configuration operation. In some examples, the methodincludes changing the current operating state of at least oneapplication executing on the computing device to a different operatingstate further includes changing a unique configuration of the at leastone application, wherein the unique configuration includes data of theat least one application and a group of instructions of the at least oneapplication operating on the data at a point in time. In one example,the method includes generating, by the computing device, an associationbetween the configuration operation and the at least one application,wherein the computing device uses the association to identify theconfiguration operation associated with the at least one application.

In some examples, the method includes further registering, by thecomputing device, the at least one application of the computing devicewith the unique identifier, wherein registering the at least oneapplication further includes generating an association between the atleast one application of the computing device and the unique identifier,wherein the computing device uses the association to identify the atleast one application associated with unique identifier. In someexamples, the peripheral device further includes a docking station,short-range communication tag, laptop, backup device, printer, scanner,or mobile phone.

In some examples, if the computing device does not recognize the uniqueidentifier of the peripheral device, sending, by the computing device,the lookup request to the network resource external to the computingdevice further includes: generating, by the computing device, the lookuprequest, wherein the lookup request includes the unique identifier;sending, by the computing device, the lookup request to the networkresource; and receiving, by the computing device, data usable by thecomputing device to retrieve an application associated with the uniqueidentifier. In some examples, the method includes: receiving, by thecomputing device, a user input to install the application; selecting, bythe computing device, the application based on the unique identifier;and installing the selected application on the computing device.

FIG. 4 is a flow diagram illustrating an example use case of a mobiledevice, in accordance with one or more aspects of the presentdisclosure. In an example use case, a user may attend a football gameand bring the computing device with the user to the football game. Theuser's computing device, e.g., an Android™ smartphone, may include anidentification application as shown in FIG. 1 and a ticket application.The ticket application may include an admission credential thatindicates the user has paid to be admitted to the football game. In someexamples, the ticket application may also be configured to communicatethe admission credential to a peripheral device using short-rangecommunication. For example, the identification application executing onthe smart phone may recognize a peripheral device that receives theadmission credential. In response to recognizing the peripheral device,the identification application may execute a configuration operationthat causes the ticket application to communicate the admissioncredential to the peripheral device.

When the user arrives at the entrance to the football venue, the usermay be required to pass through a ticketing gate. The ticketing gate mayinclude a peripheral device capable receiving the admission credential.For example, the user may position the smartphone in proximity to theperipheral device (82). The smartphone may use short-range communicationto receive a unique identifier from the peripheral device (84). Usingthe unique identifier, the identification application executing on thesmartphone may query a profile database to identify configurationoperations associated with the unique identifier (86). In the currentexample, the user has previously configured the ticket application andidentification application, therefore, the identification applicationmay recognize the unique identifier (88). The identification applicationmay retrieve definitions of configuration operations associated with theunique identifier (96). In some examples, the identification applicationmay execute the configuration operation that causes the ticketapplication to send the admission credential to the peripheral device(98).

The user may sit in a seat in the football venue specified by the ticketcredential to watch the football game. A short-range communication tagmay be attached to or in physical proximity to the seat. When the usersits in the seat, the smartphone may be in proximity to the short-rangecommunication tag (82). The smartphone, may therefore, receive a uniqueidentifier from the short-range communication tag (84). Theidentification application executing on the smartphone may query theprofile database to identify configuration operations associated withthe unique identifier (86). Because no configuration operations areassociated with the unique identifier in the profile database in thisparticular use case, the unique identifier is not recognized by theidentification application (88).

The identification application executing on the smartphone may send arequest message to a remote server that includes unique identifier (90).In some examples, the request message may cause the remote server toretrieve configuration operations associated with unique identifier(92). In the current example, configuration operations associated withthe unique identifier may include switching the smartphone ringersetting to vibrate, installing and launching a football statisticsapplication, and/or displaying information including food prices andrestroom locations within the football venue. The smartphone may in turnreceive definitions of the configuration operations (94). Upon receivingthe definitions of the configuration operations, the identificationoperation may execute the configuration operations (98).

FIG. 5 is a block diagram illustrating an example of an identificationapplication 122 that may be configured to execute configurationoperations based on content types, in accordance with one or moreaspects of the present disclosure. In some examples, applicationsexecuting on computing device 134 may register with identificationapplication 122 according to a particular content type. In one example,a content type may be an attribute that is associated with a uniqueidentifier. In another example, a content type may be an attributeassociated with a peripheral device and received as information bycomputing device 134. In one example, identification application 122receives information from a peripheral device that includes a contenttype. A content type may enable identification application 122 toperform configuration operations on one or more applications accordingto the content type. In other examples, a content type may enableidentification application 122 to send data payload to one or moreapplications according to the content type. One example of a contenttype may include AUDIO_APPLICATION. The content type AUDIO_APPLICATIONmay be used to identify any of applications 110, 112, 114 that causecomputing device 134 to output an audio signal. Another content type maybe NETWORK_APPLICATION. The content type NETWORK_APPLICATION may be usedto identify any of applications 110, 112, 114 that cause computingdevice 134 to perform network communication. The aforementioned contenttypes, while illustrated in examples as character strings, may beimplemented in any number of ways that uniquely represent each contenttype.

In some examples, one or more applications 110, 112, 114 executing oncomputing device 134 may be registered with identification application122 based on various content types. In one example of registering anapplication based on a content type, a user may configure identificationapplication 122 to associate an application and a content type. Forexample, a user may associate application 112 with content type X usingidentification application 122. Identification application 122 may storeassociation 126 between application 110 and content type X in profiledatabase 124. In another example, a user may associate application 112with content type AUDIO_APPLICATION (not shown). Identificationapplication 122 may store the association (not shown) betweenapplication 110 and content type AUDIO_APPLICATION in profile database124.

In some examples, a user that registers an application with a contenttype may further define configuration operations associated with acontent type. In one example, a configuration operation may includeshutting down an application. In another example, a configurationoperation may include sending a data payload to one or moreapplications.

In some examples, identification application 122 performs configurationoperations based on the content type of the information received bycomputing device 134. For example, a user may initially registerapplications 110, 112 with identification application 122 based oncontent type X. The user may further define a configuration operationthat sends the data payload of any information of content type X toapplications registered with content type X. In one example,identification application 122 may receive information 116 fromperipheral device 136. Information 116 may be of content type X. Uponreceiving information 116, identification application 122 may queryprofile database 124 to identify applications registered with contenttype X. For example, profile database 124 may include associations 138,126 that associate applications 110, 112 to content type X.

Identification application 122 may retrieve the definition of aconfiguration operation associated with content type X from profiledatabase 124. The configuration operation associated with content type Xmay be executed or otherwise performed by identification application122. Executing the configuration operation may cause identificationapplication 122 to send the data payload of information 116 toapplications 110, 112 because applications 110, 112 are registered withidentification application 122 based on content type X. For example,data payloads 130A, 130B may correspond to the data payload ofinformation 116. Identification application 122 may send data payloads130A, 130B to applications 110, 112 because each these applications areregistered with identification application 122 based on content type X.One example of content type X may include NETWORK_APPLICATION. Thecorresponding data payloads 130A, 130B may include data indicating thelatency and bandwidth of the network connection. Network usage andoperation of applications 110, 112 may, for example, change in responseto the bandwidth and latency of network connection to provide optimalperformance.

In another example, identification application 122 may receiveinformation 118 from peripheral device 137, which may be of content typeY. Profile database 124 may include a definition of a configurationoperation that terminates execution of any application registered withcontent type Y. In response to receiving information 118, identificationapplication 122 may query profile database 124 to determine thatapplication 110 is associated with content type Y. Identificationapplication 122 may send data 128 to application 110 that causesexecution of application 110 to terminate because application 110 isregistered with identification application 122 based on content type Y.

In another example, identification application 122 may receiveinformation 120 from peripheral device 139, which may be of content typeZ. Profile database 124 may include a definition of a configurationoperation that causes an application registered with content type Z toinitiate a connection with another device in proximity to computingdevice 134. In response to receiving information 120, identificationapplication 122 may query profile database 124 to determine thatapplication 114 is associated with content type Z. Identificationapplication 122 may notify all applications executing on computingdevice 134 that data associated with content type Z may be retrievedfrom identification application 122. Application 114 may retrieve data132, which may in turn initiate a connection with another device inproximity to computing device 134 from identification application 122.One example of content type Z may be AUDIO_APPLICATION. Thecorresponding data payload 132 may include data that indicates theoperating environment of computing device 134 has substantial backgroundnoise. Audio volume of application 114 may, for example, increase from apresent setting to a higher new setting to ensure the user can hear theaudio output generated by application 114.

FIG. 6 is a block diagram illustrating an example of a computing device140 configured to communicate with other devices when a tag 146 isdetected by computing device 140 using short-range communication, inaccordance with one or more aspects of the present disclosure. Tag 146may in some examples be a short-range communication tag. In someexamples, tag 146 may be attached or in physical proximity to dockingstation 144.

In some examples, computing device 140, employing techniques of thepresent disclosure, may be placed on or near a peripheral device, e.g.,docking station 144. Docking station 144 may provide, for example, powerand/or network connectivity to computing device 140. Other devices maybe in physical proximity to docking station 144 such as mobile device142, laptop 148, backup device 150, printer 152, and/or scanner 154.

In some examples, computing device 140 may be configured to initiatecommunication with one or more devices in physical proximity tocomputing device 140 when tag 146 is detected. For example, a user mayinitially register a communication application executing on computingdevice 140 with a unique identifier of tag 146. In some examples, thecommunication application may be capable of enabling computing device140 to communicate with other devices. The user may also define aconfiguration operation associated with the unique identifier of tag146. The configuration operation may initiate and/or configure thecommunication application to communicate with other devices.

When computing device 140 is placed in docking station 144, computingdevice 140 may detect tag 146 using short-range communication. Computingdevice 140 may use the unique identifier of tag 146 to execute theconfiguration operation, which initiates and/or configures thecommunication application executing on computing device 140. Thecommunication application may then communicate with other devices, forexample, mobile device 142, laptop 148, backup device 150, printer 152,and/or scanner 154.

The techniques described in this disclosure may be implemented, at leastin part, in hardware, software, firmware, or any combination thereof.For example, various aspects of the described techniques may beimplemented within one or more processors, including one or moremicroprocessors, digital signal processors (DSPs), application specificintegrated circuits (ASICs), field programmable gate arrays (FPGAs), orany other equivalent integrated or discrete logic circuitry, as well asany combinations of such components. The term “processor” or “processingcircuitry” may generally refer to any of the foregoing logic circuitry,alone or in combination with other logic circuitry, or any otherequivalent circuitry. A control unit including hardware may also performone or more of the techniques of this disclosure.

Such hardware, software, and firmware may be implemented within the samedevice or within separate devices to support the various techniquesdescribed in this disclosure. In addition, any of the described units,modules or components may be implemented together or separately asdiscrete but interoperable logic devices. Depiction of differentfeatures as modules or units is intended to highlight differentfunctional aspects and does not necessarily imply that such modules orunits must be realized by separate hardware, firmware, or softwarecomponents. Rather, functionality associated with one or more modules orunits may be performed by separate hardware, firmware, or softwarecomponents, or integrated within common or separate hardware, firmware,or software components.

The techniques described in this disclosure may also be embodied orencoded in an article of manufacture including a computer-readablestorage medium encoded with instructions. Instructions embedded orencoded in an article of manufacture including a computer-readablestorage medium encoded, may cause one or more programmable processors,or other processors, to implement one or more of the techniquesdescribed herein, such as when instructions included or encoded in thecomputer-readable storage medium are executed by the one or moreprocessors. Computer readable storage media may include random accessmemory (RAM), read only memory (ROM), programmable read only memory(PROM), erasable programmable read only memory (EPROM), electronicallyerasable programmable read only memory (EEPROM), flash memory, a harddisk, a compact disc ROM (CD-ROM), a floppy disk, a cassette, magneticmedia, optical media, or other computer readable media.

In some examples, a computer-readable storage medium may comprisenon-transitory medium. The term “non-transitory” may indicate that thestorage medium is not embodied in a carrier wave or a propagated signal.In certain examples, a non-transitory storage medium may store data thatcan, over time, change (e.g., in RAM or cache).

Various aspects of the disclosure have been described. These and otherembodiments are within the scope of the following claims.

The invention claimed is:
 1. A method comprising: receiving, by acomputing device that communicates with a short-range communication tagusing short-range wireless communication, first data indicating a uniqueidentifier of the short-range communication tag, wherein the computingdevice is proximate to the short-range communication tag within a rangeof Near Field Communication; responsive to receiving a user input thatdefines a first configuration operation for at least one application ofthe computing device, generating, by the computing device, anassociation between the first configuration operation and the uniqueidentifier of the short-range communication tag; after generating theassociation, receiving, by the computing device using short-rangewireless communication within the range of Near Field Communication,second data; responsive to receiving the second data, determining, bythe computing device, whether the computing device recognizes the uniqueidentifier of the short-range communication tag in the second data, and:if the computing device recognizes the unique identifier of theshort-range communication tag in the second data, performing, by thecomputing device, the first configuration operation, which changes acurrent operating state of the at least one application executing on thecomputing device to a different operating state; and if the computingdevice does not recognize the unique identifier of the short-rangecommunication tag in the second data: sending, by the computing device,a lookup request that includes the second data received via theshort-range wireless communication to a network resource external to thecomputing device, wherein the lookup request comprises a request to thenetwork resource for third data specifying a second configurationoperation for the computing device based on the second data received viathe short-range wireless communication, and receiving, by the computingdevice, the third data specifying the second configuration operation forthe computing device based on the second data received via theshort-range wireless communication.
 2. The method of claim 1, whereinperforming the first configuration operation for the computing devicefurther comprises: generating, by the computing device, a messagecomprising fourth data that defines a third configuration operation,wherein the third configuration operation changes a second current stateof at least one application executing on a second computing device to asecond, different operating state; and sending, by the computing device,the message to the second computing device.
 3. The method of claim 1,further comprising: receiving, by the computing device using short-rangewireless communication within the range of Near Field Communication, adata payload in the second data, the data payload comprising informationthat changes the current operating state of the at least one applicationexecuting on the computing device to the different operating state. 4.The method of claim 1, further comprising: receiving a content type, andwherein the first configuration operation changes the current operatingstate of the at least one application executing on the computing deviceto the different operating state when the at least one application isassociated with the content type, and wherein the content type furthercomprises an attribute that associates the first configuration operationwith a group of one or more applications executing on the computingdevice.
 5. The method of claim 4, further comprising: registering, bythe computing device, the at least one application of the computingdevice with the content type, wherein registering the at least oneapplication further comprises generating a first association between theat least one application and the content type, wherein the computingdevice uses the first association to identify the at least oneapplication associated with the content type; and registering, by thecomputing device, the content type with the first configurationoperation, wherein registering the content type further comprisesgenerating a second association between the content type and the firstconfiguration operation, wherein the computing device uses the secondassociation to identify the first configuration operation associatedwith the content type.
 6. The method of claim 1, further comprising:storing, by the computing device in a database, a profile associatedwith the unique identifier, wherein the profile comprises a definitionof the first configuration operation.
 7. The method of claim 1, furthercomprising: sending, by the computing device, a short-range wirelesscommunication broadcast to request the unique identifier from theshort-range communication tag.
 8. The method of claim 1, wherein theunique identifier further comprises a cryptographic key.
 9. The methodof claim 1, wherein the short-range wireless communication comprises aNear Field Communication.
 10. The method of claim 1, further comprising:receiving a data payload that includes data associated with theshort-range communication tag.
 11. The method of claim 10, furthercomprising: providing the data payload for use by the short-rangecommunication tag.
 12. The method of claim 1, wherein the at least oneapplication executing on the computing device comprises an operatingsystem executing on the computing device.
 13. The method of claim 1,wherein changing the current operating state of the at least oneapplication executing on the computing device to a different operatingstate further comprises changing a unique configuration of the at leastone application, wherein the unique configuration comprises data of theat least one application and a group of instructions of the at least oneapplication operating on the data at a point in time.
 14. The method ofclaim 1, further comprising: registering, by the computing device, theat least one application of the computing device with the uniqueidentifier, wherein registering the at least one application furthercomprises generating an association between the at least one applicationof the computing device and the unique identifier, wherein the computingdevice uses the association to identify the at least one applicationassociated with unique identifier.
 15. The method of claim 1, whereinsending, by the computing device, the lookup request to the networkresource external to the computing device further comprises: generating,by the computing device, the lookup request, wherein the lookup requestincludes the unique identifier; and sending, by the computing device,the lookup request to the network resource; and wherein the third datais usable by the computing device to retrieve an application associatedwith the unique identifier.
 16. The method of claim 15, furthercomprising: receiving, by the computing device, a user input to installthe application; selecting, by the computing device, the applicationbased on the unique identifier; and installing the selected applicationon the computing device.
 17. A non-transitory computer-readable storagemedium encoded with instructions that cause one or more processors of acomputing device to: receive, from a short-range communication tag usingshort-range wireless communication, first data indicating a uniqueidentifier of the short-range communication tag, wherein the computingdevice is proximate to the short-range communication tag within a rangeof Near Field Communication; responsive to receiving a user input thatdefines a first configuration operation for at least one application ofthe computing device, generate an association between the firstconfiguration operation and the unique identifier of the short-rangecommunication tag; after generating the association, receive, usingshort-range wireless communication within the range of Near FieldCommunication, second data; responsive to receiving the second data,determining whether the computing device recognizes the uniqueidentifier of the short-range communication tag in the second data, and:if the computing device recognizes the unique identifier of theshort-range communication tag in the second data, perform the firstconfiguration operation, which changes a current operating state of theat least one application executing on the computing device to adifferent operating state; and if the computing device does notrecognize the unique identifier of the short-range communication tag inthe second data: send a lookup request that includes the second datareceived via the short-range wireless communication to a networkresource external to the computing device, wherein the lookup requestcomprises a request to the network resource for third data specifying asecond configuration operation for the computing device based on thesecond data received via the short-range wireless communication, andreceive the third data specifying the second configuration operation forthe computing device based on the second data received via theshort-range wireless communication.
 18. A computing device comprising:at least one processor; and at least one module operable by the at leastone processor to: receive, from a short-range communication tag usingshort-range wireless communication, first data indicating a uniqueidentifier of the short-range communication tag, wherein the computingdevice is proximate to the short-range communication tag within a rangeof Near Field Communication; responsive to receiving a user input thatdefines a first configuration operation for at least one application ofthe computing device, generate an association between the firstconfiguration operation and the unique identifier of the short-rangecommunication tag; after generating the association, receive, usingshort-range wireless communication within the range of Near FieldCommunication, second data; responsive to receiving the second data,determine whether the at least one module recognizes the uniqueidentifier of the short-range communication tag in the second data, and:if the computing device recognizes the unique identifier of theshort-range communication tag in the second data, perform the firstconfiguration operation, which changes a current operating state of theat least one application executing on the computing device to adifferent operating state; and if the computing device does notrecognize the unique identifier of the short-range communication tag inthe second data: send a lookup request that includes the second datareceived via the short-range wireless communication to a networkresource external to the computing device, wherein the lookup requestcomprises a request to the network resource for third data specifying asecond configuration operation for the computing device based on thesecond data received via the short-range wireless communication, andreceive the third data specifying the second configuration operation forthe computing device based on the second data received via theshort-range wireless communication.
 19. The method of claim 1, whereinthe short-range communication tag is a first short-range communicationtag; wherein the unique identifier of the short-range communication tagis a first unique identifier of the first short-range communication tag;and wherein the second data received via the short-range wirelesscommunication comprises a second unique identifier of a secondshort-range communication tag.
 20. The non-transitory computer-readablestorage medium of claim 17, wherein the short-range communication tag isa first short-range communication tag; wherein the unique identifier ofthe short-range communication tag is a first unique identifier of thefirst short-range communication tag; and wherein the second datareceived via the short-range wireless communication comprises a secondunique identifier of a second short-range communication tag.
 21. Thecomputing device of claim 18, wherein the short-range communication tagis a first short-range communication tag; wherein the unique identifierof the short-range communication tag is a first unique identifier of thefirst short-range communication tag; and wherein the second datareceived via the short-range wireless communication comprises a secondunique identifier of a second short-range communication tag.